home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 June / EnigmA AMIGA RUN 19 (1997)(G.R. Edizioni)(IT)[!][issue 1997-06][EAR-CD III].iso / recent1 / apic1805.lha / APIC / examples / Amikeyterm.lst < prev    next >
File List  |  1997-05-10  |  21KB  |  547 lines

  1. #PIC V0.9.2 (c)1997 J.Petroglou    LIST FILE
  2. #file: data:aminetupp/PICSim/examples/Amikeyterm.src
  3. #date: Sat May 10 15:11:49 1997
  4. #pic : PIC16C84
  5.  
  6. ADDR CODE     SRCLINE SOURCECODE
  7.  
  8. 0000             000001 
  9. 0000             000002 
  10. 0000             000003 ;PIC16C84 keybord controller for Amiga keybords
  11. 0000             000004 ;pressed keys are located in table and send in serial ascii format (19200baud)
  12. 0000             000005 ;
  13. 0000             000006 ;Dirk Duesterberg duesterb@unixserv.rz.fh-hannover.de
  14. 0000             000007 ;                 http://linux.rz.fh-hannover.de/~duesterb
  15. 0000             000008 
  16. 0000             000009 
  17. 0000             000010     list    p=PIC16C84, r=dec, s=off
  18. 0000             000011 
  19.  
  20. #include 'ram:p16cxx.inc' start
  21. 0000             000001     LIST
  22. 0000             000002 ; P16CXX.INC  Standard PICAsm Header File
  23. 0000             000070     LIST
  24. #include end.
  25.  
  26. 0000             000013 
  27. 0000             000014 
  28. 0000             000015 #define    ACLK    PortA,0
  29. 0000             000016 #define    ADAT    PortA,1
  30. 0000             000017 
  31. 0000             000018 #define    TXD    PortA,2
  32. 0000             000019 #define c    3,0
  33. 0000             000020 #define z    3,2
  34. 0000             000021 
  35. 0000             000022 RA    =    5        ;PortA is register 5
  36. 0000             000023 
  37. 0000             000024 
  38. 0000             000025 
  39. 0000             000026 
  40. 0000             000027     CBLOCK    0ch
  41. 0000             000028 
  42. 0000             000028 
  43. 0000             000029        count0
  44. 0000             000030        count1
  45. 0000             000031        Akeydat
  46. 0000             000032        serbuf
  47. 0000             000033 
  48. 0000             000033 
  49. 0000             000034     ENDC
  50. 0000             000035 
  51. 0000             000036 
  52. 0000             000037 
  53. 0000 30FB        000038     movlw    11111011b        ;pin 2 is output (TXD)
  54. 0001 0065        000039     tris    PortA
  55. 0002             000040 
  56. 0002 3000        000041     movlw    0            ;PortB is output
  57. 0003 0066        000042     tris    PortB
  58. 0004             000043 
  59. 0004 2888        000044     goto    Reset
  60. 0005             000045 
  61. 0005             000046 
  62. 0005             000047 
  63. 0005 080E        000048 rawkeys    movf    Akeydat,w
  64. 0006 397F        000049     andlw    7fh            ;clr bit 7 (make/break or pressed/unpressed)
  65. 0007 0782        000050     addwf    pcl,f
  66. 0008             000051 
  67. 0008             000052 
  68. 0008             000053 ; characters, numbers and spezial keys
  69. 0008             000054 ; $00-$3F
  70. 0008             000055 
  71. 0008 3400        000056     retlw    00h            ;00h
  72. 0009 3400        000057     retlw    00h            ;01h
  73. 000A 3400        000058     retlw    00h            ;02h
  74. 000B 3400        000059     retlw    00h            ;03h
  75. 000C 3400        000060     retlw    00h            ;04h
  76. 000D 3400        000061     retlw    00h            ;05h
  77. 000E 3400        000062     retlw    00h            ;06h
  78. 000F 3400        000063     retlw    00h            ;07h
  79. 0010             000064 
  80. 0010 3400        000065     retlw    00h            ;08h
  81. 0011 3400        000066     retlw    00h            ;09h
  82. 0012 3400        000067     retlw    00h            ;0Ah
  83. 0013 3400        000068     retlw    00h            ;0Bh
  84. 0014 3400        000069     retlw    00h            ;0Ch
  85. 0015 3400        000070     retlw    00h            ;0Dh
  86. 0016 3400        000071     retlw    00h            ;0Eh    
  87. 0017 3400        000072     retlw    00h            ;0Fh
  88. 0018             000073 
  89. 0018             000074 
  90. 0018             000075 
  91. 0018 3471        000076     retlw    "q"            ;10h
  92. 0019 3477        000077     retlw    "w"            ;11h
  93. 001A 3465        000078     retlw    "e"            ;12h
  94. 001B 3472        000079     retlw    "r"            ;13h
  95. 001C 3474        000080     retlw    "t"            ;14h
  96. 001D 347A        000081     retlw    "z"            ;15h
  97. 001E 3475        000082     retlw    "u"            ;16h
  98. 001F 3469        000083     retlw    "i"            ;17h
  99. 0020             000084 
  100. 0020 346F        000085     retlw    "o"            ;18h
  101. 0021 3470        000086     retlw    "p"            ;19h
  102. 0022 FFFFFFFC        000087     retlw    "ü"            ;1Ah
  103. 0023 342B        000088     retlw    "+"            ;1Bh
  104. 0024 3400        000089     retlw    00h            ;1Ch
  105. 0025 3400        000090     retlw    00h            ;1Dh
  106. 0026 3400        000091     retlw    00h            ;1Eh
  107. 0027 3400        000092     retlw    00h            ;1Fh
  108. 0028             000093 
  109. 0028             000094 
  110. 0028             000095 
  111. 0028 3461        000096     retlw    "a"            ;20h
  112. 0029 3473        000097     retlw    "s"            ;21h
  113. 002A 3464        000098     retlw    "d"            ;22h
  114. 002B 3466        000099     retlw    "f"            ;23h
  115. 002C 3467        000100     retlw    "g"            ;24h
  116. 002D 3468        000101     retlw    "h"            ;25h
  117. 002E 346A        000102     retlw    "j"            ;26h
  118. 002F 346B        000103     retlw    "k"            ;27h
  119. 0030             000104 
  120. 0030 346C        000105     retlw    "l"            ;28h
  121. 0031 FFFFFFF6        000106     retlw    "ö"            ;29h
  122. 0032 FFFFFFE4        000107     retlw    "ä"            ;2Ah
  123. 0033 3400        000108     retlw    00h            ;2Bh
  124. 0034 3400        000109     retlw    00h            ;2Ch
  125. 0035 3400        000110     retlw    00h            ;2Dh
  126. 0036 3400        000111     retlw    00h            ;2Eh
  127. 0037 3400        000112     retlw    00h            ;2Fh
  128. 0038             000113 
  129. 0038             000114 
  130. 0038             000115 
  131. 0038 3400        000116     retlw    00h            ;30h
  132. 0039 3400        000117     retlw    00h            ;31h
  133. 003A 3400        000118     retlw    00h            ;32h
  134. 003B 3400        000119     retlw    00h            ;33h
  135. 003C 3400        000120     retlw    00h            ;34h
  136. 003D 3400        000121     retlw    00h            ;35h
  137. 003E 3400        000122     retlw    00h            ;36h
  138. 003F 3400        000123     retlw    00h            ;37h
  139. 0040             000124 
  140. 0040 3400        000125     retlw    00h            ;38h
  141. 0041 3400        000126     retlw    00h            ;39h
  142. 0042 3400        000127     retlw    00h            ;3Ah
  143. 0043 3400        000128     retlw    00h            ;3Bh
  144. 0044 3400        000129     retlw    00h            ;3Ch
  145. 0045 3400        000130     retlw    00h            ;3Dh
  146. 0046 3400        000131     retlw    00h            ;3Eh
  147. 0047 3400        000132     retlw    00h            ;3Fh
  148. 0048             000133 
  149. 0048             000134 ; other spezial keys (space, TAB, Return)
  150. 0048             000135 ; $40-$4F
  151. 0048             000136 
  152. 0048 3400        000137     retlw    00h            ;40h
  153. 0049 3400        000138     retlw    00h            ;41h
  154. 004A 3400        000139     retlw    00h            ;42h
  155. 004B 3400        000140     retlw    00h            ;43h
  156. 004C 3400        000141     retlw    00h            ;44h
  157. 004D 3400        000142     retlw    00h            ;45h
  158. 004E 3400        000143     retlw    00h            ;46h
  159. 004F 3400        000144     retlw    00h            ;47h
  160. 0050             000145 
  161. 0050 3400        000146     retlw    00h            ;48h
  162. 0051 3400        000147     retlw    00h            ;49h
  163. 0052 3400        000148     retlw    00h            ;4Ah
  164. 0053 3400        000149     retlw    00h            ;4Bh
  165. 0054 3400        000150     retlw    00h            ;4Ch
  166. 0055 3400        000151     retlw    00h            ;4Dh
  167. 0056 3400        000152     retlw    00h            ;4Eh
  168. 0057 3400        000153     retlw    00h            ;4Fh
  169. 0058             000154 
  170. 0058             000155 
  171. 0058             000156 ; Function keys, Help etc.
  172. 0058             000157 ; $50-$5F
  173. 0058             000158 
  174. 0058 3400        000159     retlw    00h            ;50h
  175. 0059 3400        000160     retlw    00h            ;51h
  176. 005A 3400        000161     retlw    00h            ;52h
  177. 005B 3400        000162     retlw    00h            ;53h
  178. 005C 3400        000163     retlw    00h            ;54h
  179. 005D 3400        000164     retlw    00h            ;55h
  180. 005E 3400        000165     retlw    00h            ;56h
  181. 005F 3400        000166     retlw    00h            ;57h
  182. 0060             000167 
  183. 0060 3400        000168     retlw    00h            ;58h
  184. 0061 3400        000169     retlw    00h            ;59h
  185. 0062 3400        000170     retlw    00h            ;5Ah
  186. 0063 3400        000171     retlw    00h            ;5Bh
  187. 0064 3400        000172     retlw    00h            ;5Ch
  188. 0065 3400        000173     retlw    00h            ;5Dh
  189. 0066 3400        000174     retlw    00h            ;5Eh
  190. 0067 3400        000175     retlw    00h            ;5Fh
  191. 0068             000176 
  192. 0068             000177 
  193. 0068             000178 
  194. 0068             000179 ; shifting keys like shift, amiga, Alternate and Control
  195. 0068             000180 ; $60-6F
  196. 0068             000181     
  197. 0068 3400        000182     retlw    00h            ;60h
  198. 0069 3400        000183     retlw    00h            ;61h
  199. 006A 3400        000184     retlw    00h            ;62h
  200. 006B 3400        000185     retlw    00h            ;63h
  201. 006C 3400        000186     retlw    00h            ;64h
  202. 006D 3400        000187     retlw    00h            ;65h
  203. 006E 3400        000188     retlw    00h            ;66h
  204. 006F 3400        000189     retlw    00h            ;67h
  205. 0070             000190 
  206. 0070 3400        000191     retlw    00h            ;68h
  207. 0071 3400        000192     retlw    00h            ;69h
  208. 0072 3400        000193     retlw    00h            ;6Ah
  209. 0073 3400        000194     retlw    00h            ;6Bh
  210. 0074 3400        000195     retlw    00h            ;6Ch
  211. 0075 3400        000196     retlw    00h            ;6Dh
  212. 0076 3400        000197     retlw    00h            ;6Eh
  213. 0077 3400        000198     retlw    00h            ;6Fh
  214. 0078             000199 
  215. 0078             000200 
  216. 0078             000201 ;spezial keybord commandos
  217. 0078             000202 ; $70-$7F
  218. 0078             000203 
  219. 0078 3400        000204     retlw    00h            ;70h    
  220. 0079 3400        000205     retlw    00h            ;71h
  221. 007A 3400        000206     retlw    00h            ;72h
  222. 007B 3400        000207     retlw    00h            ;73h
  223. 007C 3400        000208     retlw    00h            ;74h
  224. 007D 3400        000209     retlw    00h            ;75h
  225. 007E 3400        000210     retlw    00h            ;76h
  226. 007F 3400        000211     retlw    00h            ;77h
  227. 0080             000212 
  228. 0080 3400        000213     retlw    00h            ;78h
  229. 0081 3400        000214     retlw    00h            ;79h=F9h= letzter tasten code war fehlerhaft
  230. 0082 3400        000215     retlw    00h            ;7Ah=FAh= tastenpuffer im keybord voll
  231. 0083 3400        000216     retlw    00h            ;7Bh
  232. 0084 3400        000217     retlw    00h            ;7Ch=FCh= selbsttest der tastatur war fehlerhaft
  233. 0085 3400        000218     retlw    00h            ;7Dh=FDh= beginn der beim Einschalten gedrueckten Tasten
  234. 0086 3400        000219     retlw    00h            ;7Eh=FEh= ende der beim Einschalten gedrueckten Tasten
  235. 0087 3400        000220     retlw    00h            ;7Fh
  236. 0088             000221 
  237. 0088             000222     
  238. 0088             000223 
  239. 0088             000224 
  240. 0088             000225 
  241. 0088             000226 
  242. 0088             000227 
  243. 0088             000228 
  244. 0088             000229 
  245. 0088             000230 
  246. 0088             000231 
  247. 0088             000232 
  248. 0088             000233 
  249. 0088             000234 
  250. 0088             000235 
  251. 0088             000236 
  252. 0088             000237 
  253. 0088             000238 
  254. 0088             000239 
  255. 0088             000240 
  256. 0088             000241 
  257. 0088             000242 
  258. 0088             000243 
  259. 0088             000244 
  260. 0088 018E        000245 Reset    clrf    Akeydat            ;Akeydat is used as character counter
  261. 0089             000246 
  262. 0089 300B        000247 check    movlw    11
  263. 008A 020E        000248     subwf    Akeydat,w        ;how many characters ?
  264. 008B 1903        000249     btfsc    z
  265. 008C 289F        000250     goto    ready
  266. 008D             000251 
  267. 008D 2092        000252     call    dat
  268. 008E 008F        000253     movwf    serbuf
  269. 008F 20D6        000254     call    sendb            ;send letter
  270. 0090 0A8E        000255     incf    Akeydat,f
  271. 0091 2889        000256     goto    check
  272. 0092             000257 
  273. 0092             000258 
  274. 0092             000259 
  275. 0092 080E        000260 dat    movf    Akeydat,w        ;letter to w routine
  276. 0093 0782        000261     addwf    pcl,f            ;jump in table
  277. 0094 346D        000262     retlw    "mache RESET"
  278. 0095 3461        000262 
  279. 0096 3463        000262 
  280. 0097 3468        000262 
  281. 0098 3465        000262 
  282. 0099 3420        000262 
  283. 009A 3452        000262 
  284. 009B 3445        000262 
  285. 009C 3453        000262 
  286. 009D 3445        000262 
  287. 009E 3454        000262 
  288. 009F             000263 
  289. 009F             000264 
  290. 009F             000265 
  291. 009F             000266 
  292. 009F             000267 
  293. 009F             000268 
  294. 009F             000269 
  295. 009F 20B2        000270 ready    call    sync
  296. 00A0             000271 
  297. 00A0             000272 
  298. 00A0             000273 
  299. 00A0             000274 
  300. 00A0 3007        000275 rcAdat    movlw    7
  301. 00A1 008C        000276     movwf    count0
  302. 00A2             000277 
  303. 00A2 20CD        000278 :loop    call    wACLK            ;wait for Amiga CLK
  304. 00A3 0D8E        000279     rlf    Akeydat,f        ;rotate bits into register
  305. 00A4 0B8C        000280     decfsz    count0,f
  306. 00A5 28A2        000281     goto    :loop            ;format is x6543210
  307. 00A6             000282 
  308. 00A6             000283 
  309. 00A6 0D8E        000284     rlf    Akeydat,f        ;format is 6543210x
  310. 00A7 20CD        000285     call    wACLK            ;wait for Amiga CLK
  311. 00A8 0C8E        000286     rrf    Akeydat,f        ;format is 76543210, jippije
  312. 00A9 098E        000287     comf    Akeydat,f        ;data is inverted
  313. 00AA             000288 
  314. 00AA 3005        000289     movlw    5
  315. 00AB 20BA        000290     call    wms            ;wait 5 ms
  316. 00AC             000291 
  317. 00AC             000292 ;    mov    serbuf,Akeydat
  318. 00AC             000293 ;    call    sendb            ;send raw data
  319. 00AC             000294 
  320. 00AC             000295 
  321. 00AC 2005        000296     call    rawkeys
  322. 00AD 008F        000297     movwf    serbuf
  323. 00AE             000298 
  324. 00AE 1F8E        000299     btfss    Akeydat,7        ;no sending if key up flag is set
  325. 00AF 20D6        000300     call    sendb            ;send the in table found code
  326. 00B0             000301 
  327. 00B0 20C3        000302     call    AHshake            ;all data OK, do the Handshake
  328. 00B1 28A0        000303     goto    rcAdat            ;receive next byte from keybord
  329. 00B2             000304 
  330. 00B2             000305 
  331. 00B2             000306 
  332. 00B2             000307 
  333. 00B2             000308 
  334. 00B2             000309 
  335. 00B2             000310 
  336. 00B2             000311 
  337. 00B2             000312 
  338. 00B2             000313 
  339. 00B2             000314 
  340. 00B2 20CD        000315 sync    call    wACLK            ;wait for clock and do no Acknowledge
  341. 00B3             000316     
  342. 00B3 30FA        000317     movlw    250
  343. 00B4 20BA        000318     call    wms            ;wait 250 ms (we want the sync mode!)
  344. 00B5             000319 
  345. 00B5 20CD        000320     call    wACLK            ;wait for Amiga CLK for Handshake
  346. 00B6             000321 
  347. 00B6 3001        000322     movlw    1
  348. 00B7 20BA        000323     call    wms            ;wait 1 ms
  349. 00B8             000324 
  350. 00B8 20C3        000325     call    AHshake            ;now we do the shake!
  351. 00B9 0008        000326     return
  352. 00BA             000327 
  353. 00BA             000328 
  354. 00BA             000329  
  355. 00BA             000330 
  356. 00BA             000331 
  357. 00BA             000332 
  358. 00BA 008C        000333 wms    movwf    count0
  359. 00BB             000334 
  360. 00BB 30F8        000335 :loop    movlw    248
  361. 00BC 008D        000336     movwf    count1
  362. 00BD 0000        000337 :do_it    nop
  363. 00BE             000338 
  364. 00BE 0B8D        000339     decfsz    count1,f
  365. 00BF 28BD        000340     goto    :do_it
  366. 00C0             000341 
  367. 00C0 0B8C        000342     decfsz    count0,f
  368. 00C1 28BB        000343     goto    :loop
  369. 00C2             000344 
  370. 00C2 0008        000345     return
  371. 00C3             000346 
  372. 00C3             000347 
  373. 00C3             000348 
  374. 00C3             000349 
  375. 00C3             000350 
  376. 00C3             000351 
  377. 00C3 30F9        000352 AHshake    movlw    11111001b        ;bit1 = ADAT = output
  378. 00C4 0065        000353     tris    RA
  379. 00C5             000354 
  380. 00C5 1085        000355     bcf    ADAT            ;clr Amiga data line
  381. 00C6             000356     
  382. 00C6 3028        000357     movlw    40
  383. 00C7 008C        000358     movwf    count0            ;40 * 3 = 120cycles = 120 µs (min 75µs)
  384. 00C8 0B8C        000359 :do_it    decfsz    count0,f
  385. 00C9 28C8        000360     goto    :do_it
  386. 00CA             000361 
  387. 00CA 30FB        000362     movlw    11111011b        ;bit1 = ADAT = input
  388. 00CB 0065        000363     tris    RA
  389. 00CC 0008        000364     return
  390. 00CD             000365 
  391. 00CD             000366 
  392. 00CD             000367 
  393. 00CD             000368 
  394. 00CD             000369 
  395. 00CD             000370 
  396. 00CD 1805        000371 wACLK    btfsc    ACLK            ;wait for neg clock pulse
  397. 00CE 28CD        000372     goto    wACLK
  398. 00CF             000373 
  399. 00CF 1C85        000374     btfss    Adat
  400. 00D0 1003        000375     bcf    c
  401. 00D1 1885        000376     btfsc    Adat
  402. 00D2 1403        000377     bsf    c            ;mov the data to carry bit
  403. 00D3             000378 
  404. 00D3 1C05        000379 wACLK2    btfss    ACLK            ;wait for pos clock pulse
  405. 00D4 28D3        000380     goto    wACLK2
  406. 00D5 0008        000381     return
  407. 00D6             000382 
  408. 00D6             000383 
  409. 00D6             000384 
  410. 00D6             000385 
  411. 00D6             000386 
  412. 00D6             000387 
  413. 00D6             000388 
  414. 00D6 20E7        000389 sendb    call    wbit            ;this are stop bits from previous sending
  415. 00D7 20E7        000390     call    wbit
  416. 00D8             000391 
  417. 00D8 1505        000392     bsf    TXD            ;send startbit
  418. 00D9 3008        000393     movlw    8
  419. 00DA 008C        000394     movwf    count0            ;8 bits to send
  420. 00DB 098F        000395     comf    serbuf,f        ;invert serbuf
  421. 00DC             000396 
  422. 00DC 20E7        000397 s_it    call    wbit
  423. 00DD 0C8F        000398     rrf    serbuf,f
  424. 00DE             000399 
  425. 00DE 1C03        000400     btfss    c
  426. 00DF 1105        000401     bcf    TXD
  427. 00E0 1803        000402     btfsc    c
  428. 00E1 1505        000403     bsf    TXD
  429. 00E2             000404 
  430. 00E2 0B8C        000405     decfsz    count0,f
  431. 00E3 28DC        000406     goto    s_it            ;all bits send ? decrement the bitcounter
  432. 00E4             000407 
  433. 00E4 20E7        000408     call    wbit
  434. 00E5 1105        000409     bcf    TXD            ;clear TXD, stopbit, lenght is defined by 
  435. 00E6             000410                     ;next sending
  436. 00E6 0008        000411     return
  437. 00E7             000412 
  438. 00E7             000413 
  439. 00E7             000414 
  440. 00E7             000415 
  441. 00E7             000416 
  442. 00E7 300D        000417 wbit    movlw    13
  443. 00E8 008D        000418     movwf    count1            ;19200 at 4 Mhz
  444. 00E9 0B8D        000419 :loop    decfsz    count1,f
  445. 00EA 28E9        000420     goto    :loop
  446. 00EB 0000        000421     nop
  447. 00EC 0008        000422     return
  448. 00ED             000423 
  449.  
  450.  
  451. Used Symbols
  452. -----------------------------------------
  453. W                                00000000
  454. F                                00000001
  455. INDF                             00000000
  456. TMR0                             00000001
  457. PCL                              00000002
  458. STATUS                           00000003
  459. FSR                              00000004
  460. PORTA                            00000005
  461. PORTB                            00000006
  462. PCLATH                           0000000A
  463. INTCON                           0000000B
  464. OPTION_REG                       00000081
  465. TRISA                            00000085
  466. TRISB                            00000086
  467. GIE                              00000007
  468. T0IE                             00000005
  469. INTE                             00000004
  470. RBIE                             00000003
  471. T0IF                             00000002
  472. INTF                             00000001
  473. RBIF                             00000000
  474. NOT_RBPU                         00000007
  475. INTEDG                           00000006
  476. T0CS                             00000005
  477. T0SE                             00000004
  478. PSA                              00000003
  479. PS2                              00000002
  480. PS1                              00000001
  481. PS0                              00000000
  482. IRP                              00000007
  483. RP1                              00000006
  484. RP0                              00000005
  485. NOT_TO                           00000004
  486. NOT_PD                           00000003
  487. Z                                00000002
  488. DC                               00000001
  489. C                                00000000
  490. EEDATA                           00000008
  491. EEADR                            00000009
  492. EECON1                           00000088
  493. EECON2                           00000089
  494. RA                               00000005
  495. count0                           0000000C
  496. count1                           0000000D
  497. Akeydat                          0000000E
  498. serbuf                           0000000F
  499. rawkeys                          00000005
  500. Reset                            00000088
  501. check                            00000089
  502. dat                              00000092
  503. ready                            0000009F
  504. rcAdat                           000000A0
  505. sync                             000000B2
  506. wms                              000000BA
  507. AHshake                          000000C3
  508. wACLK                            000000CD
  509. wACLK2                           000000D3
  510. sendb                            000000D6
  511. s_it                             000000DC
  512. wbit                             000000E7
  513.  
  514.  
  515. Used Defines
  516. -----------------------------------------
  517. ACLK                             PortA,0 
  518. ADAT                             PortA,1 
  519. TXD                              PortA,2 
  520. c                                3,0 
  521. z                                3,2 
  522.  
  523.  
  524. PROGRAM MEMORY USAGE TABLE:    '-' = not used  'X' = used
  525.  
  526. 0000 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
  527. 0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
  528. 0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
  529. 00C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXX--- ----------------
  530. 0100 : ---------------- ---------------- ---------------- ----------------
  531. 0140 : ---------------- ---------------- ---------------- ----------------
  532. 0180 : ---------------- ---------------- ---------------- ----------------
  533. 01C0 : ---------------- ---------------- ---------------- ----------------
  534. 0200 : ---------------- ---------------- ---------------- ----------------
  535. 0240 : ---------------- ---------------- ---------------- ----------------
  536. 0280 : ---------------- ---------------- ---------------- ----------------
  537. 02C0 : ---------------- ---------------- ---------------- ----------------
  538. 0300 : ---------------- ---------------- ---------------- ----------------
  539. 0340 : ---------------- ---------------- ---------------- ----------------
  540. 0380 : ---------------- ---------------- ---------------- ----------------
  541. 03C0 : ---------------- ---------------- ---------------- ----------------
  542.  
  543. Program Memory Words Used:  0237
  544. Program Memory Words Free:  0787
  545.  
  546. Errors: 0
  547.